home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 147 / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin / games / ippon / source.lzh / FuncEnemy / lboss01c.c < prev    next >
C/C++ Source or Header  |  2000-07-07  |  1KB  |  78 lines

  1. /* lboss01c.c ボスのカバー */
  2. #include <xsp2lib.h>
  3.  
  4. #include "../main.h"
  5. #include "../player.h"
  6. #include "../shot.h"
  7. #include "../enemy.h"
  8. #include "../eshot.h"
  9. #include "../effect.h"
  10. #include "../psearch.h"
  11. #include "../sound.h"
  12.  
  13. #define PALET_MAIN    0x0700
  14.  
  15. /* 関数プロトタイプ宣言 */
  16. static short EnemyMoveLBoss01C (ENEMY *);
  17. static void EnemyFreeLBoss01C (ENEMY *);
  18.  
  19.  
  20. /* 初期化ルーチン */
  21. void EnemyAllocLBoss01C (ENEMY * p)
  22. {
  23.     p->vx = 0;
  24.     p->vy = 0;
  25.  
  26.     p->pt = obj_lboss01;
  27.     p->info = PALET_MAIN | PRIORITY_BOSS_PARTS;
  28.     p->hit_sx = 0;
  29.     p->hit_sy = 0;
  30.     p->damage = 0;
  31.     p->flash = 0;
  32.  
  33.     p->hp = 10000;        /* 破壊不能 */
  34.     p->damage_mode = DAMAGE_THROUGH;
  35.     p->func_enemy_move = EnemyMoveLBoss01C;
  36.     p->func_enemy_free = EnemyFreeLBoss01C;
  37.  
  38.     p->m_work = 0;
  39. }
  40.  
  41.  
  42.  
  43. /* 移動ルーチン */
  44. /* 返り値:非0なら消去 */
  45. static short EnemyMoveLBoss01C (ENEMY * p)
  46. {
  47.     /* 速度を足して上位ワード(固定整数部)だけ取り出す */
  48.     p->x = (p->lx += p->vx) >> 16;
  49.     p->y = (p->ly += p->vy) >> 16;
  50.  
  51.     if (SHORT_VY < 2)
  52.         p->vy += 4096;
  53.     switch (p->m_work++) {
  54.     case 0:
  55.     case 8 + 15 * 1:
  56.     case 8 + 15 * 2:
  57.         EffectAlloc (EFFECT_EXPL, 0, p->x, p->y);
  58.         SoundSetSE (SE_EXPL);    /* 爆発音を鳴らす */
  59.         break;
  60.     case 8 + 15 * 4:
  61.         EffectAlloc (EFFECT_EXPL, 0, p->x, p->y);
  62.         SoundSetSE (SE_EXPL_M);        /* 爆発音を鳴らす */
  63. //              EffectAlloc (EFFECT_HAHENMINI, 0, p->x, p->y);
  64.         return (-1);    /* 消去 */
  65.         break;
  66.     }
  67.     xobj_set_st (p);
  68.  
  69.  
  70.     return (0);
  71. }
  72.  
  73.  
  74. /* 消去ルーチン */
  75. static void EnemyFreeLBoss01C (ENEMY * p)
  76. {
  77. }
  78.